Verification of Source Code Transformations by Program Equivalence Checking
نویسندگان
چکیده
Typically, a combination of manual and automated transformations is applied when algorithms for digital signal processing are adapted for energy and performance-efficient embedded systems. This poses severe verification problems. Verification becomes easier after converting the code into dynamic single-assignment form (DSA). This paper describes a method to prove equivalence between two programs in DSA where subscripts to array variables and loop bounds are (piecewise) affine expressions. For such programs, geometric modeling can be used and it can be shown, for groups of elements at once, that the outputs in both programs are the same function of the inputs.
منابع مشابه
PATH BASED EQUIVALENCE CHECKING OF PETRI NET REPRESENTATION OF PROGRAMS FOR TRANSLATION VALIDATION Soumyadip Bandyopadhyay PATH BASED EQUIVALENCE CHECKING OF PETRI NET REPRESENTATION OF PROGRAMS FOR TRANSLATION VALIDATION
A user written application program goes through significant optimizing and parallelizing transformations, both (compiler) automated and human guided, before being mapped to an architecture. Formal verification of these transformations is crucial to ensure that they preserve the original behavioural specification. The PRES+ model (Petri net based Representation of Embedded Systems) encompassing ...
متن کاملFunctional Equivalence Checking for Verification of Transformations on Array-Intensive Programs
Development of energy and performance-efficient embedded software, for mobile computing and communicating systems, is increasingly relying on application of complex transformations on the critical parts of the source code. Typically, these transformations are applied on the algorithmic kernels in the software, for example, signal processing algorithms, numerical methods etc. The transformations...
متن کاملAutomatic Verification of Source Code Transformations on Array-Intensive Programs: Demonstration with Real-life Examples
We have recently developed a method for verification of source code transformations applied on array-intensive programs typically found in signal processing and high performance computing applications. The method is based on checking the equivalence of the original and the transformed programs belonging to a decidable class that is still of practical interest. In this report, using a prototype ...
متن کاملEfficient Automatic Verification of Loop and Data-flow Transformations by Functional Equivalence Checking
Thesis — Automatic and efficient verification of loop and data-flow transformations commonly applied while optimizing digital signal processing and scientific computing programs is feasible by functional equivalence checking of the original and transformed programs. Application of transformations, in general, is known to enable efficient implementation of programs. For resource constrained embe...
متن کاملCompiler Validation by Program Analysis of the Cross-Product
The paper presents a deductive framework for proving program equivalence and its application to automatic verification of transformations performed by optimizing compilers. To leverage existing program analysis techniques, we reduce the equivalence checking problem to analysis of one system a cross-product of the two input programs. We show how the approach can be effectively used for checking ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2005